#!/bin/bash

# 配置

# 从https://gitee.com/senzhanggit/doc_format_conv 下载或者用git 克隆到本地，
# 把对应的本地目录的路径设置为local_repos_path的值
local_repos_path=${LOCAL_TOOL_PATH:="H:/devworkswin_file_format_conv"}

# -1. 输入参数
tmpl_filepath="$1"
working_path="$2"

shift
shift

# 大数据学院/2024/数据科学与大数据技术_叶瑞安_2020240568
# 大数据学院/2024/智能科学与技术_陈鹏翔_2020240447
# 大数据学院/2024/网络工程_刘玉祥_2020240573
# 大数据学院/2024/网络工程_王得印_2020240233
# 大数据学院/2024/网络工程_陈柿坤_2020240225
# 大数据学院/2024/网络工程_龙涛_2020240265
# 大数据学院/2024/网络空间安全_肖开科_2020240389

IFS='/' read -r school grad_year major_name_id <<< "$working_path"

IFS='_' read -r major name stu_id <<< "$major_name_id"

if [ "$school" = "" \
               -o "$grad_year" = "" \
               -o "$major" = "" \
               -o "$name" = "" \
               -o "$stu_id" = "" ]; then
    echo "学院、毕业年份、专业、学生姓名、学号，其中有空值，现在退出".
    exit 1
fi

real_tmpl_filepath=$(realpath $tmpl_filepath)

echo "目录模板完整路径: ${real_tmpl_filepath}"
real_working_path="$(realpath $working_path)"
echo "工作目录完整路径: ${real_working_path}"

cd "${working_path}"

# 0. 操作对象当前目录下是名为 "<学号> <名字" 的子目录，以下称之为 package ，对应一个毕业学生的归档材料目录
#  其中要有一个目录模板文件 00.目录.docx
package="${stu_id} ${name}"

# 1. 生成目录docx
## 文件名以00. 开始

make_gda_toc_pages.sh $real_tmpl_filepath $real_working_path "学号姓名:${package}" "【学院】:${school}" "【毕业年份】:${grad_year}" "【专业】:${major}"

# 2. 将docx全部转换为pdf

powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "Import-Module ${local_repos_path}/ConvertWordTo-PDF.psm1; ConvertWordTo-PDF -SourceFolder ."
mv 00.目录.pdf .00.目录.pdf

# 3. 将以 00. 开始的pdf拆分为2份

qpdf --empty --pages .00.目录.pdf 1-2 -- 00.首页和论文目录页.pdf
qpdf --empty --pages .00.目录.pdf 3  -- 02.归档资料目录页.pdf

# 经过上述处理以后得到：

# 00.首页和论文目录页.pdf 
# 01.论文本身.pdf 
# 02.归档资料目录页.pdf 
# 03.归档资料本身.pdf
# 05.查重报告首页

# 4. 释放查重报告
qa_file=$(find . -name "*查重报告*.zip" |xargs basename)
temp_qa_file=$(mktemp).pdf
7z e "${qa_file}" -so -ir\!"*原文对照报告*.pdf" > $temp_qa_file
# qpdf --empty --pages $temp_qa_file 1  -- 05.查重报告.pdf
find . -type f -name '*.pdf' -printf "%p\0" | xargs -0 bash -c 'qpdf --empty --pages "$@" -- ../${output_pdf_filename}'


# 5. 合并上述00 到03 pdf

qpdf --empty --pages $(find . -name "0*.pdf" |tr '\n' ' ') -- "../$(basename $working_path).毕业设计（论文）归档.pdf"